﻿#define  _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
// //1.输入一个年龄，如果年龄在18到36岁之间，我们输出青年（包括18和36）
//int main()
//{
//    int age = 0; //先来一个变量age
//    scanf("%d", &age); // 输入一个值给这个变量age
//    if (age >= 18 && age <= 36) //&&是“且”的意思 表示我们输入的这个值如果满足>=18且<=36 if判断语句
//        printf("青年\n");//我们就输出青年
//    return 0;
//}
//
//
////2.设计一个程序，输入三位数a，分别输出百，十，个位
////（99 < a < 1000）
////    例如：输入251
////    则输出
////    2
////    5
////    1
//int main()
//{
//    int a = 0; // 先创建一个变量a
//    scanf("%d", &a);//我们输入的这个值赋给变量a
//    int b = a / 100;//a/100 因为a与100都是整数 因此结果也是整数 即不要余数  我们就可以得出百位
//    int c = (a % 100) / 10;// 先a%100 取余 即要a除以100的余数得到十位和个位组成的两位数，然后/10得到十位
//    int d = (a % 10);// a%10 取余就直接得到个位了
//    printf("%d\n", b);//依次打印百十个位
//    printf("%d\n", c);
//    printf("%d\n", d);
//
//    return 0;
//}
//
//
//    //3.输入一个三位的正整数n（n的各个位中都不含数字0）
//    //要求输出这个三位正整数（百位＋十位）除以（十位＋个位）的计算结果，保留两位小数
//    //例如：输入135
//    //输出0.50
//int main()
//{
//    int a = 0;//创建一个变量a
//    scanf("%d", &a); //输入一个值赋给变量
//    int b = a / 100;//首先我要得到这个三位数的百位，个位，十位
//    int c = (a % 100) / 10;//首先对100取余得到十位和个位，接着再除以10取整就可以得到十位
//    int d = a % 10; //对10取余就能得到个位
//    int e = b + c;//百位＋十位
//    int f = c + d;//十位+个位
//    double k = (double) e/ f; //转换整型到浮点型 先把e转换为浮点型 然后再按照浮点型的除法进行计算
//    printf("%.2f\n", k); //保证打印出来是两位小数
//    return 0;
//}

// 在屏幕上打印出1-10 使用while
//int main()
//{
//	int i = 1;
//	while (i <= 10)
//	{
//		printf(" %d ", i);
//		i++;//i=i+1
//	}
//	return 0;
//}
//int main()
//{
//	int i = 0;
//	while (i < 10)
//	{
//		i = i++;//i=i+1
//		printf(" %d ", i);
//		
//	}
//	return 0;
//} 这样也行
//while循环后面只能跟一条语句，若有多条语句可以加个{}
////练习
//输⼊⼀个正的整数，逆序打印这个整数的每⼀位
//例如：
//输⼊：1234，输出：4 3 2 1
//输⼊：521，输出：1 2 5

//int main()
//{
//	int n = 0;  初始化
//	scanf("%d", &n);
//	while (n) 或者写为while(n!=0)  判断
//	{
//		printf("%d ", n % 10);//打印出来末位 一直循环直到n = 0就是假就不再循环了  1234%10=4 1234/10=123
//		//  123%10=3 123/10=12  12%10=2  12/10=1  1%10=1   1/10=0 循环停止  所以就打印出4 3 2 1
//		n = n / 10;   调整     //这样n就把最后一位去掉了
//	}
//	return 0;
//}

//for 循环  for(表达式1;表达式2;表达式3) for循环后面只能跟一条语句，若有多条语句可以加大括号{}
//表达式1：初始化表达式  表达式2：判断表达式  表达式3：调整 和while差不多 只不过while分散
//while 的初始化 判断  调整 有一个变化都会导致最后的结果改变，若我们想改变循环，则需要改变三个
//所以我们用for循环，三个都放一起
//int main()
//{
//	int i = 0;
//	for (i = 1; i <= 10; i++)
//	{
//		printf("%d ", i);
//	}
//	return 0;
//}  for循环的初始化只进行一次  然后就一直在第二个表达式和第三个中循环 

//计算1-100之间的3的倍数之和
//int main()
//{
//	int i = 0;
//	int sum = 0;
//	for (i = 1; i <= 100; i++)
//	{
//		
//		if (i % 3 == 0)  //判断是不是3的倍数
//			sum += i; //等同于sum = sum + i
//	}
//	printf("%d\n", sum);
//	return 0;
//}
//计算1-100之间的3的倍数之和
//int main()
//{
//	int i = 0;
//	int sum = 0;
//	for (i = 3; i <= 100; i +=3 )//直接让i就是3的倍数
//	{
//		sum += i;
//	}
//	printf("%d\n", sum);
//	return 0;
//}
//do while的循环体  上来就循环  至少执行一次
////do
//     语句：
//while（表达式）：

//在屏幕上打印1到10
//int main()
//{
//	int i = 1;
//	do
//	{
//
//		printf("%d ", i);
//		i++;
//	} while (i <= 10);
//	return 0;
//}

//输入一个正整数计算他是几位数
//int main()
//{
//	int n = 0;
//	int count = 0;
//	scanf("%d", &n);//123
//	do
//	{
//		count++;
//		n = n / 10;//上面已经算了一位 所以这里要去掉一位
//
//	} while (n);//只要n不为0就一直执行循环
//	printf("%d\n", count);
//
//	return 0;
//}

//break 作用于永久的终止循环，只要break执行，就会直接跳出循环，继续往后执行
//continue的作用是跳过本次循环中continue后面的代码，在for循环和while循环中有所差异

//int main()
//{
//	int i = 1;
//	while (i <= 10)
//	{
//		if (i == 5)
//			break;
//		printf("%d ", i);  //打印出1 2 3 4
//		i++;
//	}
//	return 0;
//}

//int main()
//{
//	int i = 1;
//	while (i <= 10)
//	{
//		if (i == 5)
//			continue;
//		printf("%d ", i);  //因为i中有5 所以会跳过后面的代码然后i继续等于5继续循环 
//		//所以打印出1 2 3 4 x  （x代表光标一直在闪烁）死循环了
//		i++;
//	}
//	return 0;
//}
//int main()
//{
//	int i = 0;
//	while (i < 10)
//	{
//		i++;
//		if (i == 5)
//			continue;
//		printf("%d ", i);  //这样就能打印出1 2 3 4 6 7 8 9 10
//	}
//	return 0;
//}

//int main()
//{
//	int i = 0;
//	for (i = 1; i <= 10; i++)
//	{
//		if (i == 5)
//			break;  //1 2 3 4
//		printf("%d ", i);
//	}
//	return 0;
//}
//int main()
//{
//	int i = 0;
//	for (i = 1; i <= 10; i++)
//	{
//		if (i == 5)
//			continue;  //1 2 3 4 6 7 8 9 10  i=5不会打印  然后又上去调整部分 执行i++，所以可以继续打印678910
//		printf("%d ", i);
//	}
//	return 0;
//}
//int main()
//{
//	int i = 1;
//	do
//	{
//		if (i == 5)
//			break; //1234
//		printf("%d ", i);
//		i++;
//	} while (i <= 10);
//		return 0;
//}
//int main()
//{
//	int i = 1;
//	do
//	{
//		if (i == 5)
//			continue; //1 2 3 4 光标  死循环  
//		printf("%d ", i);
//		i++;
//	} while (i <= 10);
//		return 0;
//}

//int main()
//{
//	int i = 0;
//	for (i = 1; i <= 10; ) //for循环的三个部分是可以不要的假如我把i++放到continue后面
//	{
//		if (i == 5)
//			continue;  //1 2 3 4  光标 死循环了
//		printf("%d ", i);
//		i++;
//	}
//	return 0;
//}

//找出100到200之间的素数，并打印在屏幕上。
//素数是只能被1和本身整除的数字。
//首先产生100到200，然后再去判断就行

//int main()
//{
//	int i = 0;
//	for (i = 100; i <= 200; i++)
//	{
//		int flag = 1;//假设i是素数
//		//每一次循环进来都会产生一个数 判断这个i是否为素数
//		//如果2到i-1之间有任何一个数字能整除i，i就不是素数
//		//如果2到i-1之间的所有数字都不能整除i，i就是素数
//		//产生2到i-1之间的数字去试除i
//		int j = 0;
//		for (j = 2; j <= i - 1; j++)
//		{
//			if (i % j == 0) //可以被除了1和它本身的数整除
//			{
//				flag = 0;//这里已经知道i不是素数，就不用继续往后了
//				break; //打破循环了
//			}
//		}
//		if ( flag == 1) //说明i是素数
//		{
//			printf("%d ", i);
//
//		}
//	}
//	return 0;
//}